Field
The following relates to graphics processing, graphics processing systems, such as Graphics Processor Units (GPUs), and in example particular aspects, compositing and image production techniques.
Related Art
Buffers used to store data waiting to be outputted to a display are typically called “frame buffers”, evoking a concept of display of a frame of a temporal sequence of frames, where a “frame” is a complete set of pixel data. In some computation architectures, frame buffers also can serve as a source of data to be further processed, such as by a GPU.
In such a case, a GPU can read data from a frame buffer (e.g., a location in a memory storing image data, such as a bitmap), and use that data, along with other data, to form a composite image. The GPU then writes out data representing the entire composite image to an output frame buffer. A display controller can read the composite image from the output frame buffer, and cause the composite image to be displayed. Thus, an entire pixel dataset is stored to represent each displayable frame.
As a more concrete example, a conventional render and display system can be setup to implement a triple buffering approach, in which three portions of memory are reserved, each independently capable of holding a full resolution displayable frame (e.g., buffer 0, 1 and 2), and are arranged in a flip chain. For example a graphics processor can write consecutive frames to be displayed to buffers 0, 1, and 2, and then restart at 0. Similarly, a display controller reads buffers 0, 1, and 2, before returning to read buffer 0 again. Where pixel data is the same between any one or more of buffers 0, 1 or 2, that pixel data is repeated in all the buffers where it appears.